package com.xbk.seckill.stock.application.service;

import com.xbk.seckill.stock.application.model.dto.SeckillStockBucketDTO;

/**
 * 库存编排服务
 *
 * @author xiexu
 * @date 2025/3/8 22:07
 */
public interface SeckillStockBucketArrangementService {

    /**
     * 编码分桶库存
     *
     * @param goodsId         商品id
     * @param stock           库存总数量
     * @param bucketsQuantity 分桶数量
     * @param assignmentMode  编排模式, 1:总量模式; 2:增量模式
     *                        注意：总量模式指的是变更商品的总库存，以此来达到重新编排分桶库存的目的
     *                        增量模式指的是在原有的库存基础上，增加库存，以此来达到重新编排分桶库存的目的
     */
    void arrangeStockBuckets(Long goodsId, Integer stock, Integer bucketsQuantity, Integer assignmentMode);

    /**
     * 通过商品id获取库存分桶信息
     */
    SeckillStockBucketDTO getSeckillStockBucketDTO(Long goodsId, Long version);

}
